/*
 Navicat Premium Data Transfer

 Source Server         : 127.0.0.1 MySQL
 Source Server Type    : MySQL
 Source Server Version : 80200 (8.2.0)
 Source Host           : 127.0.0.1:3306
 Source Schema         : ruoyi-vue-pro

 Target Server Type    : MySQL
 Target Server Version : 80200 (8.2.0)
 File Encoding         : 65001

 Date: 17/03/2025 12:58:24
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for iot_data_bridge
-- ----------------------------
DROP TABLE IF EXISTS `iot_data_bridge`;
CREATE TABLE `iot_data_bridge`  (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '桥梁编号',
  `name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '桥梁名称',
  `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '桥梁描述',
  `status` int NOT NULL COMMENT '桥梁状态',
  `direction` int NOT NULL COMMENT '桥梁方向',
  `type` int NOT NULL COMMENT '桥梁类型',
  `config` json NULL COMMENT '桥梁配置',
  `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 12 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'IoT 数据桥梁';

-- ----------------------------
-- Records of iot_data_bridge
-- ----------------------------
BEGIN;
INSERT INTO `iot_data_bridge` (`id`, `name`, `description`, `status`, `direction`, `type`, `config`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (11, '插座', '', 0, 1, 30, '{\"tags\": \"test-tag\", \"type\": \"30\", \"group\": \"test-group\", \"topic\": \"test-topic\", \"accessKey\": \" \", \"secretKey\": \" \", \"nameServer\": \"127.0.0.1:9876\"}', '1', '2025-03-14 16:55:18', '1', '2025-03-14 16:58:45', b'0', 1);
COMMIT;

-- ----------------------------
-- Table structure for iot_device
-- ----------------------------
DROP TABLE IF EXISTS `iot_device`;
CREATE TABLE `iot_device`  (
  `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '设备 ID，主键，自增',
  `device_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '设备唯一标识符，全局唯一，用于识别设备',
  `device_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '设备名称，在产品内唯一，用于标识设备',
  `nickname` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '设备备注名称，供用户自定义备注',
  `serial_number` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '设备序列号',
  `pic_url` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '设备图片',
  `group_ids` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '设备分组编号集合',
  `product_id` bigint UNSIGNED NOT NULL COMMENT '产品 ID',
  `product_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '产品 Key',
  `device_type` tinyint UNSIGNED NOT NULL DEFAULT 0 COMMENT '设备类型，参见 IotProductDeviceTypeEnum 枚举',
  `gateway_id` bigint UNSIGNED NULL DEFAULT NULL COMMENT '网关设备 ID，子设备需要关联的网关设备 ID',
  `state` tinyint UNSIGNED NOT NULL DEFAULT 0 COMMENT '设备状态，参见 IotDeviceStateEnum 枚举',
  `online_time` datetime NULL DEFAULT NULL COMMENT '最后上线时间',
  `offline_time` datetime NULL DEFAULT NULL COMMENT '最后离线时间',
  `active_time` datetime NULL DEFAULT NULL COMMENT '设备激活时间',
  `ip` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '设备的 IP 地址',
  `firmware_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '设备的固件编号',
  `device_secret` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '设备密钥，用于设备认证，需安全存储',
  `mqtt_client_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'MQTT 客户端 ID',
  `mqtt_username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'MQTT 用户名',
  `mqtt_password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'MQTT 密码',
  `auth_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '认证类型（如一机一密、动态注册）',
  `latitude` decimal(10, 6) NULL DEFAULT NULL COMMENT '设备位置的纬度',
  `longitude` decimal(10, 6) NULL DEFAULT NULL COMMENT '设备位置的经度',
  `area_id` int UNSIGNED NULL DEFAULT NULL COMMENT '地区编码',
  `address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '设备详细地址',
  `config` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '设备配置，JSON 格式',
  `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `uniq_device_key`(`device_key` ASC) USING BTREE,
  UNIQUE INDEX `uniq_device_name_product_id`(`device_name` ASC, `product_id` ASC) USING BTREE,
  INDEX `idx_product_id`(`product_id` ASC) USING BTREE,
  INDEX `idx_gateway_id`(`gateway_id` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 30 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = 'IoT 设备表';

-- ----------------------------
-- Records of iot_device
-- ----------------------------
BEGIN;
INSERT INTO `iot_device` (`id`, `device_key`, `device_name`, `nickname`, `serial_number`, `pic_url`, `group_ids`, `product_id`, `product_key`, `device_type`, `gateway_id`, `state`, `online_time`, `offline_time`, `active_time`, `ip`, `firmware_id`, `device_secret`, `mqtt_client_id`, `mqtt_username`, `mqtt_password`, `auth_type`, `latitude`, `longitude`, `area_id`, `address`, `config`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (6, '28cfc98ab69c489fac38158e43c7708c', '0010', '电表家里2', NULL, NULL, '17', 4, '1de24640dfe', 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, '705580aaafbd45d2aa0dd74fd3d1b1b2', '19a0d474-f9b8-4ce1-a01d-d96daeb69af6', '0010&1de24640dfe', 'be085d01-6e93-49b6-bcd5-109f7ce27ed2', NULL, NULL, NULL, NULL, NULL, NULL, '1', '2024-09-21 20:17:28', '1', '2025-03-08 21:49:15', b'1', 1), (8, '954e40f5d17b4b158a7800c2c28414f5', 'dianbiao1', '智能电表1', NULL, NULL, '16', 5, 'f13f57c63e9', 0, NULL, 1, '2025-03-08 21:41:50', '2025-03-08 21:41:43', '2024-10-31 21:43:55', NULL, NULL, '38a357dd4997418e822b1c679a5dd448', 'e8d9a89c-a90a-40ab-ab97-72c23526dd4b', 'dianbiao1&f13f57c63e9', '77ce3a2c-62da-4f4f-8cb0-2b2ebe8a17fd', NULL, NULL, NULL, NULL, NULL, NULL, '1', '2024-10-27 10:33:22', NULL, '2025-03-08 21:49:23', b'0', 1), (9, 'f4f104c65b9c4ceeb8f002a578d9569a', 'new-123', NULL, NULL, NULL, '17', 4, '1de24640dfe', 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, '33dc27fd54be4d0e871b8acdc7335c7f', '7aac1d60-3f76-4193-9556-d86be6e52437', 'new-123&1de24640dfe', 'aLLoTtjxshQdivFchqFLlV0Bwq7D3v_prFFvClCDRuk', NULL, NULL, NULL, NULL, NULL, NULL, '1', '2024-12-06 09:38:06', '1', '2025-03-08 21:49:34', b'0', 1), (10, 'b276e217e66d4193b15b722f5f8c926b', 'test333', NULL, NULL, NULL, '16,17', 10, 'YzvHxd4r67sT4s2B', 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, 'f0fc32eab0244d169368ddf5adc03366', '7073449b-3dc3-4b54-b790-9e8bcc189362', 'test333&YzvHxd4r67sT4s2B', 'lQcS1gGr5Nx5q4CcwTm_h9EyhnnlzKseXlUCvu95II0', NULL, NULL, NULL, NULL, NULL, NULL, '1', '2024-12-14 13:34:08', '1', '2025-03-08 21:49:41', b'0', 1), (11, 'zCE20GpDVVQFitr3', 'AA:BB', NULL, NULL, NULL, '17', 4, '1de24640dfe', 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, '805c69c341e2472fb23ec24c0afbeb94', 'b26566b1df574f178d7bb226bca04684', 'AA:BB&1de24640dfe', 'nq0RTiJVDn03Tpagf9FwAwPYVpIo2dYP', NULL, NULL, NULL, NULL, NULL, NULL, '1', '2024-12-14 15:55:26', '1', '2024-12-14 19:40:58', b'0', 1), (12, 'EiK4J56879n4LSq6', 'gateway110', NULL, NULL, NULL, '17', 9, 'PHg5XcqNfDt4tk3p', 2, NULL, 0, NULL, NULL, NULL, NULL, NULL, '0fba9833cead44a8ac743bc273f596a0', '253e963bbad64e30a017baaf4691f00e', 'gateway110&PHg5XcqNfDt4tk3p', 'UxTJekbLVYaUZLRwNnpLLYiZUvKLk65v', NULL, NULL, NULL, NULL, NULL, NULL, '1', '2024-12-14 15:58:28', '1', '2024-12-14 19:40:58', b'0', 1), (13, 'cae5WG0FxeVzPd7v', 'biubiu', NULL, NULL, NULL, '', 11, 'jAufEMTF1W6wnPhn', 1, 12, 0, NULL, NULL, NULL, NULL, NULL, 'e03dff4f4b2f487b9c8febb40d643c94', '9dd3a89d880b4698be755bb5641d93be', 'biubiu&jAufEMTF1W6wnPhn', 'MpVaK8OQCwvOKYJKh3V2KY9Cl2Jq6nWn', NULL, NULL, NULL, NULL, NULL, NULL, '1', '2024-12-14 16:01:13', '1', '2024-12-15 10:45:47', b'0', 1), (14, 'OFzHFzpj7YZq7tJt', 'test01', NULL, NULL, NULL, '', 9, 'PHg5XcqNfDt4tk3p', 2, NULL, 0, NULL, NULL, NULL, NULL, NULL, '4efe0f34fddc4e978b336f0f851923b3', 'd5719c8504af4d59bc1f969c99f203bd', 'test01&PHg5XcqNfDt4tk3p', 'Ll1E3FmSi7qtkRUqssnQhg3nbtsOFEmi', NULL, NULL, NULL, NULL, NULL, NULL, '1', '2024-12-14 19:09:55', '1', '2024-12-14 19:10:55', b'1', 1), (15, 'YlRY4FWEEyaiUmqt', '温度传感器001', NULL, NULL, NULL, '16,17', 4, '1de24640dfe', 0, 12, 0, NULL, NULL, NULL, NULL, NULL, '2d92c51a52ec470d8f09ca410a5983b3', '8f4d17d0c9644394b4d5834e9c458483', '温度传感器001&1de24640dfe', 'ZXM6hv7D5E71VK23vesChf62OJxSx3i5', NULL, NULL, NULL, NULL, NULL, NULL, '1', '2024-12-15 10:45:47', '1', '2024-12-15 10:45:47', b'0', 1), (16, 'C7ykzLPBkzPFN4HS', 'abc_45', NULL, NULL, NULL, '', 4, '1de24640dfe', 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, '88d121a0da9d4ea58cc48bcdeef6313e', '3cc097584ce7421188e572afc869e040', 'abc_45&1de24640dfe', '3LNUBLr1bJTNoQd0RpZmNrS06R9WRDRs', NULL, NULL, NULL, NULL, NULL, NULL, '1', '2024-12-16 13:31:29', '1', '2024-12-16 13:31:29', b'0', 1), (17, 'PlQfaAnk8vxGd2m6PlQfaAnk8vxGd2m6', 'acb-sdsd', NULL, NULL, NULL, '', 4, '1de24640dfe', 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, '5ac8a92454d946539dc4e8a52a61e6c8', '6e490ffd0dc046169f9cd5262e31ca30', 'acb-sdsd&1de24640dfe', 'sFEZQ4vAnDYYgoBt7FbWpBfyeuNFI8lM', NULL, NULL, NULL, NULL, NULL, NULL, '1', '2024-12-16 13:32:31', '1', '2024-12-16 13:32:31', b'0', 1), (18, '2d2DQOB6pl9oDKGxPlQfaAnk8vxGd2m6PlQfaAnk8vxGd2m6', 'dsad', NULL, NULL, NULL, '', 4, '1de24640dfe', 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, '506bef8827a1468d921eeab356938f15', 'a4ecedfff793478bbbd57899b39e8947', 'dsad&1de24640dfe', 'mfQU7YthfEwVf1kDi6YC6yIvJm3SD5gD', NULL, NULL, NULL, NULL, NULL, NULL, '1', '2024-12-16 13:33:06', '1', '2025-01-27 13:46:47', b'1', 1), (19, 'H5SOXWsssssssssssssss', 'ssss', NULL, NULL, NULL, '', 12, 'CJVS54fObwZJ9Qe5CJVS54fObwZJ9Qe5', 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, '7609964cfa844ee68d1288b35de25b97', '36bc5fd5a48e43fb871659e35480bd6e', 'ssss&CJVS54fObwZJ9Qe5CJVS54fObwZJ9Qe5', '19jzUZmMiKTfXsPe6wCiBJkwjRSQhJxT', NULL, NULL, NULL, NULL, NULL, NULL, '1', '2024-12-16 13:57:16', '1', '2024-12-16 13:57:16', b'0', 1), (20, '3kFBRWG7aFsnJZxu3kFBRWG7aFsnJZxu3kFBRWG7aFsnJZxu3kFBRWG7aFsnJZxu3kFBRWG7aFsnJZxu3kFBRWG7aFsnJZxu3kFBRWG7aFsnJZxu3kFBRWG7aFsnJZxu3kFBRWG7aFsnJZxu', '545465464', NULL, NULL, NULL, '', 5, 'f13f57c63e9', 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, 'd2776a58bdc6422ea5d48ca502eb1782', '44ff27329713432da0858321bfa3cb89', '545465464&f13f57c63e9', 'DR8OEXzy0BpUtpFRtxCyx0DIh3gAVlZM', NULL, NULL, NULL, NULL, NULL, NULL, '1', '2024-12-30 21:33:06', '1', '2025-01-27 13:46:44', b'1', 1), (21, 'nOISEUX3CHHtD23W', 'fjb_001', NULL, NULL, NULL, '', 15, 'efCs2ruTcmchWF61', 0, NULL, 1, '2025-02-20 16:55:20', NULL, '2025-02-20 16:55:20', NULL, NULL, 'cbd9a823c53644e4bffe163cdb0075dc', '15371126e76c46b18e2cb0c2e738b4d7', 'fjb_001&efCs2ruTcmchWF610000000000000000000000000000000000000', 'nOkOVjBpUUlGkSI7OiKfUubyRHVvO64X', NULL, NULL, NULL, NULL, NULL, NULL, '1', '2024-12-31 16:56:40', NULL, '2025-02-20 16:55:20', b'0', 1), (22, 'Mc1tZ6hUEmZ7c2fr', 'testtest', NULL, NULL, NULL, '', 15, 'efCs2ruTcmchWF61', 0, NULL, 1, '2025-02-20 16:53:33', '2025-02-20 16:53:32', '2025-02-20 16:53:32', NULL, NULL, '03e224e5dfb042ddb367fb632b542cc9', 'a8ffe072c1174ae8b415b62025d1596e', 'testtest&efCs2ruTcmchWF61', 'o3vAdSiB8mjN4fYjsFcvRMWC3tfXaQid', NULL, NULL, NULL, NULL, NULL, NULL, '1', '2025-01-24 14:05:01', '1', '2025-03-05 15:32:24', b'0', 1), (23, '5rcLdcWA8FD8HmCT', 'bintest', NULL, NULL, NULL, '', 16, '4aymZgOTOOCrDKRT', 0, NULL, 0, '2025-01-24 14:20:19', NULL, '2025-01-24 14:20:19', NULL, NULL, '66cd0ab9f4fb43e99d1fd965dad263db', '9c923d161eb743678de0f98add38c382', 'bintest&4aymZgOTOOCrDKRT', 'davggVEK17kryf0C1ai7ha8C7eCJ6ndP', NULL, NULL, NULL, NULL, NULL, NULL, '1', '2025-01-24 14:13:13', NULL, '2025-01-29 20:13:09', b'0', 1), (24, 'abc', 'kejie', NULL, NULL, NULL, '', 4, '1de24640dfe', 0, NULL, 1, '2025-02-20 16:53:44', NULL, '2025-01-29 11:09:55', NULL, NULL, '1625a3918ae7498ba616124d987ae923', '8b21a2dc0d0445f5ac0b5333274f9359', 'kejie&1de24640dfe', '8UynsjC9JT8oD0jJQVosvdSIjZgrapp1', NULL, NULL, NULL, NULL, NULL, '{\"abc\":\"efgee\"}', '1', '2025-01-27 13:47:22', '1', '2025-03-13 08:07:01', b'0', 1), (25, 'wc', 'small', '12345', NULL, NULL, '', 16, '4aymZgOTOOCrDKRT', 0, NULL, 1, '2025-02-02 21:57:54', '2025-02-02 21:57:10', '2025-01-29 11:25:43', NULL, NULL, '0baa4c2ecc104ae1a26b4070c218bdf3', '248d3d4b66154bdca20f0aaf039934dc', 'small&4aymZgOTOOCrDKRT', 'f1hVvJayAoAwjBl5WSHcYCMs9P2zKh84', NULL, NULL, NULL, NULL, NULL, NULL, '1', '2025-01-27 16:37:08', '1', '2025-02-02 21:57:54', b'0', 1), (27, 'adDlKqfo0Io2qr3G', 'a', 'dylan\'s device', NULL, NULL, NULL, 11, 'jAufEMTF1W6wnPhn', 1, 12, 1, '2025-02-21 09:03:44', NULL, '2025-02-21 09:03:44', NULL, NULL, '9dbc3808b9634894bf8c31fb471ae795', 'e8b7fb7ad9cc4be2af891a55545a2f57', 'a&jAufEMTF1W6wnPhn', 'gIrlvhTdtRo0pLfuG7niDV1rfjJlJooz', NULL, NULL, NULL, NULL, NULL, '{\"abc\":\"123\"}', NULL, '2025-02-08 20:50:04', '1', '2025-03-13 08:09:52', b'0', 1), (28, 'o2ozySdg53jcSr76', 'jiali001', '家里001', '000001', NULL, '17', 7, 'dcba9928e37', 0, NULL, 1, '2025-03-15 16:38:28', NULL, '2025-03-15 16:38:28', NULL, NULL, '4f32b188da644e99b055544376dbecaf', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2025-03-15 16:37:44', '1', '2025-03-15 16:39:01', b'1', 1), (29, 'lFVgwTuFQMnsvxJi', 'jiali001', '家里001', '000001', NULL, '17', 17, 'fqTn4Afs982Nak4N', 0, NULL, 1, '2025-03-15 17:52:21', '2025-03-15 17:52:16', '2025-03-15 17:10:12', NULL, NULL, '0ee694bbc2674fe78584f198195acb70', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2025-03-15 16:39:40', NULL, '2025-03-15 17:52:21', b'0', 1);
COMMIT;

-- ----------------------------
-- Table structure for iot_device_group
-- ----------------------------
DROP TABLE IF EXISTS `iot_device_group`;
CREATE TABLE `iot_device_group`  (
  `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '分组 ID',
  `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '分组名字',
  `status` tinyint NOT NULL DEFAULT 0 COMMENT '分组状态',
  `description` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '分组描述',
  `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 18 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'IoT 设备分组表';

-- ----------------------------
-- Records of iot_device_group
-- ----------------------------
BEGIN;
INSERT INTO `iot_device_group` (`id`, `name`, `status`, `description`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (16, '灰度分组', 0, '123', '1', '2024-12-14 17:22:20', '1', '2024-12-14 17:43:56', b'0', 1), (17, '生产分组', 0, NULL, '1', '2024-12-14 17:22:29', '1', '2024-12-14 17:22:29', b'0', 1);
COMMIT;

-- ----------------------------
-- Table structure for iot_plugin_config
-- ----------------------------
DROP TABLE IF EXISTS `iot_plugin_config`;
CREATE TABLE `iot_plugin_config`  (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `plugin_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '插件包标识符',
  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '插件名称',
  `status` tinyint NULL DEFAULT 0 COMMENT '状态',
  `description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '描述',
  `deploy_type` tinyint NULL DEFAULT NULL COMMENT '部署方式',
  `file_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '插件包文件名',
  `version` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '插件版本',
  `type` tinyint NULL DEFAULT 0 COMMENT '插件类型',
  `protocol` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '设备插件协议类型',
  `config_schema` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '插件配置项描述信息',
  `config` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '插件配置信息',
  `script` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '插件脚本',
  `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `idx_plugin_id`(`plugin_key` ASC) USING BTREE,
  INDEX `idx_name`(`name` ASC) USING BTREE,
  INDEX `idx_type`(`type` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'IoT 插件配置表';

-- ----------------------------
-- Records of iot_plugin_config
-- ----------------------------
BEGIN;
INSERT INTO `iot_plugin_config` (`id`, `plugin_key`, `name`, `status`, `description`, `deploy_type`, `file_name`, `version`, `type`, `protocol`, `config_schema`, `config`, `script`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (3, 'yudao-module-iot-plugin-http', 'http', 0, 'yudao-module-iot-plugin-http-1.0.0', 0, 'yudao-module-iot-plugin-http-1.0.0.jar', '1.0.0', NULL, NULL, 'yudao-module-iot-plugin-http-1.0.0', NULL, '', '1', '2024-12-29 21:42:06', '1', '2025-02-18 12:27:06', b'0', 1), (4, 'mqtt-plugin', 'mqtt', 0, 'mqtt-plugin-0.0.1', 0, 'yudao-module-iot-plugin-mqtt-2.4.0-SNAPSHOT.jar', '0.0.1', 0, NULL, 'mqtt-plugin-0.0.1', NULL, '', '1', '2025-02-12 15:25:18', '1', '2025-02-12 16:05:03', b'0', 1);
COMMIT;

-- ----------------------------
-- Table structure for iot_plugin_instance
-- ----------------------------
DROP TABLE IF EXISTS `iot_plugin_instance`;
CREATE TABLE `iot_plugin_instance`  (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `plugin_id` bigint NOT NULL COMMENT '插件编号',
  `process_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '插件实例的进程编号',
  `host_ip` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '插件实例所在 IP',
  `downstream_port` int NOT NULL COMMENT '设备下行端口',
  `online` bit(1) NOT NULL COMMENT '是否在线',
  `online_time` datetime NULL DEFAULT NULL COMMENT '在线时间',
  `offline_time` datetime NULL DEFAULT NULL COMMENT '离线时间',
  `heartbeat_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '心跳时间',
  `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `uniq_main_plugin`(`process_id` ASC, `plugin_id` ASC) USING BTREE,
  INDEX `idx_plugin_id`(`plugin_id` ASC) USING BTREE,
  INDEX `idx_ip`(`host_ip` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 176 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'IoT 插件实例表';

-- ----------------------------
-- Records of iot_plugin_instance
-- ----------------------------
BEGIN;
INSERT INTO `iot_plugin_instance` (`id`, `plugin_id`, `process_id`, `host_ip`, `downstream_port`, `online`, `online_time`, `offline_time`, `heartbeat_time`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (144, 3, '192.168.64.1@2334@8eb99d6b3c3146a094231d8dddde30ae', '192.168.64.1', 50503, b'0', '2025-01-30 23:25:52', '2025-01-30 23:34:59', '2025-01-30 22:26:03', NULL, '2025-01-30 23:25:52', NULL, '2025-01-30 23:34:59', b'0', 0), (145, 3, '192.168.64.1@18374@3a933153f33b4dadb25250803a0068e0', '192.168.64.1', 50630, b'1', '2025-01-31 10:00:19', NULL, '2025-01-31 10:15:12', NULL, '2025-01-31 10:00:19', NULL, '2025-01-31 10:15:12', b'0', 0), (146, 3, '192.168.64.1@21008@81d54de6f7f1441db27df9ca5357814c', '192.168.64.1', 60665, b'1', '2025-01-31 10:18:20', NULL, '2025-01-31 10:24:20', NULL, '2025-01-31 10:18:20', NULL, '2025-01-31 10:24:20', b'0', 0), (147, 3, '192.168.64.1@26590@9ba0f525e7604ed2ad8e5c8bf855eb04', '192.168.64.1', 49753, b'0', '2025-01-31 11:02:34', '2025-01-31 17:14:44', '2025-01-31 17:14:44', NULL, '2025-01-31 11:02:34', NULL, '2025-01-31 17:14:44', b'0', 0), (148, 3, '192.168.64.1@34344@4a9ee686556a4d299091632fc7174878', '192.168.64.1', 51183, b'0', '2025-01-31 17:14:48', '2025-01-31 17:15:01', '2025-01-31 17:15:01', NULL, '2025-01-31 17:14:48', NULL, '2025-01-31 17:15:01', b'0', 0), (149, 3, '192.168.64.1@34382@49e32329346a4f9d889277658fd2cc3b', '192.168.64.1', 51366, b'0', '2025-01-31 17:15:03', '2025-01-31 17:18:48', '2025-01-31 17:18:48', NULL, '2025-01-31 17:15:03', NULL, '2025-01-31 17:18:48', b'0', 0), (150, 3, '192.168.64.1@34838@d5b0d3044b724c7cac5438b60398c6c4', '192.168.64.1', 53566, b'0', '2025-01-31 17:18:51', '2025-01-31 17:19:44', '2025-01-31 17:19:44', NULL, '2025-01-31 17:18:51', NULL, '2025-01-31 17:19:44', b'0', 0), (151, 3, '192.168.64.1@34940@c222240f75044819918f04e15383b1d0', '192.168.64.1', 54101, b'0', '2025-01-31 17:19:50', '2025-01-31 17:20:10', '2025-01-31 17:20:10', NULL, '2025-01-31 17:19:50', NULL, '2025-01-31 17:20:10', b'0', 0), (152, 3, '192.168.64.1@35028@3e5a37dcb47748f6b844938d5c3a515e', '192.168.64.1', 54342, b'0', '2025-01-31 17:20:12', '2025-01-31 17:21:39', '2025-01-31 17:21:39', NULL, '2025-01-31 17:20:12', NULL, '2025-01-31 17:21:39', b'0', 0), (153, 3, '192.168.64.1@35215@587b1b6ce81d49158ce4cde988600947', '192.168.64.1', 55168, b'1', '2025-01-31 17:21:42', NULL, '2025-01-31 17:48:42', NULL, '2025-01-31 17:21:42', NULL, '2025-01-31 17:48:42', b'0', 0), (154, 3, '192.168.64.1@47557@188b9a92eec54c418a6b4d580bc60422', '192.168.64.1', 52495, b'1', '2025-01-31 19:02:10', NULL, '2025-01-31 19:02:10', NULL, '2025-01-31 19:02:10', NULL, '2025-01-31 19:02:10', b'0', 0), (155, 3, '192.168.64.1@53579@c9ae49d473b946c6aad09d6c30dffb1e', '192.168.64.1', 60222, b'1', '2025-01-31 21:09:38', NULL, '2025-01-31 21:12:38', NULL, '2025-01-31 21:09:38', NULL, '2025-01-31 21:12:38', b'0', 0), (156, 3, '192.168.64.1@57369@97f8e27c1d69418da5edc11b28235d46', '192.168.64.1', 8093, b'0', '2025-01-31 21:40:05', '2025-01-31 21:40:10', '2025-01-31 21:40:10', NULL, '2025-01-31 21:40:05', NULL, '2025-01-31 21:40:10', b'0', 0), (157, 3, '192.168.64.1@57394@e86fcb27161f43a7bace560c2abdec62', '192.168.64.1', 8093, b'0', '2025-01-31 21:40:16', '2025-01-31 21:40:19', '2025-01-31 21:40:19', NULL, '2025-01-31 21:40:16', NULL, '2025-01-31 21:40:19', b'0', 0), (158, 3, '192.168.64.1@57429@fa7f560d1b8d4097bf42b5b5d14a577f', '192.168.64.1', 8093, b'0', '2025-01-31 21:40:31', '2025-01-31 21:40:43', '2025-01-31 21:40:43', NULL, '2025-01-31 21:40:31', NULL, '2025-01-31 21:40:43', b'0', 0), (159, 3, '192.168.64.1@58764@f4b2ba818992456ba5faae5bc3f1ce1d', '192.168.64.1', 8093, b'0', NULL, '2025-01-31 21:49:57', '2025-01-31 21:49:57', NULL, '2025-01-31 21:49:57', NULL, '2025-01-31 21:49:57', b'0', 0), (160, 3, '192.168.64.1@58792@78f86eece09b4ca19a44d86d90657071', '192.168.64.1', 8093, b'0', '2025-01-31 21:50:01', '2025-01-31 22:42:11', '2025-01-31 22:42:11', NULL, '2025-01-31 21:50:01', NULL, '2025-01-31 22:42:11', b'0', 0), (161, 3, '192.168.64.1@71578@00b6385a8599476ea7fceb64a95e7ff3', '192.168.64.1', 8093, b'0', '2025-01-31 23:11:37', '2025-02-01 20:34:41', '2025-02-01 20:34:41', NULL, '2025-01-31 23:11:37', NULL, '2025-02-01 20:34:41', b'0', 0), (162, 3, '192.168.64.1@31765@713fc4e886bd48af9a8da30d9bfade40', '192.168.64.1', 8093, b'1', '2025-02-02 17:46:30', NULL, '2025-02-03 18:22:30', NULL, '2025-02-02 17:46:30', NULL, '2025-02-03 18:22:30', b'0', 0), (163, 3, '192.168.64.1@66612@e31d4539fe0a4a80adf6b9346f459f1f', '192.168.64.1', 8093, b'0', NULL, '2025-02-07 21:07:53', '2025-02-07 21:07:53', NULL, '2025-02-07 21:07:53', NULL, '2025-02-07 21:07:53', b'0', 0), (164, 3, '192.168.64.1@67833@bddd669052e64abfbc647df58bd53003', '192.168.64.1', 8093, b'1', '2025-02-07 21:07:55', NULL, '2025-02-07 21:07:55', NULL, '2025-02-07 21:07:55', NULL, '2025-02-07 21:07:55', b'0', 0), (165, 3, '192.168.64.1@68028@5ec86d3d200c4a9cb0bf87970ef44e6a', '192.168.64.1', 8093, b'0', NULL, '2025-02-07 21:09:28', '2025-02-07 21:09:28', NULL, '2025-02-07 21:09:28', NULL, '2025-02-07 21:09:28', b'0', 0), (166, 3, '192.168.64.1@68045@8618c769d7c647178424529f7bb1a7f2', '192.168.64.1', 8093, b'0', '2025-02-07 21:09:30', '2025-02-07 21:10:01', '2025-02-07 21:10:01', NULL, '2025-02-07 21:09:30', NULL, '2025-02-07 21:10:01', b'0', 0), (167, 3, '192.168.64.1@68282@c3dc2e42532141fdb4006927d82f04a4', '192.168.64.1', 8093, b'1', '2025-02-07 21:11:25', NULL, '2025-02-07 21:11:25', NULL, '2025-02-07 21:11:25', NULL, '2025-02-07 21:11:25', b'0', 0), (168, 3, '0.0.1.1@4315@af42daac128247908deda896c4b714a9', '0.0.1.1', 8093, b'0', '2025-02-09 16:47:05', '2025-02-09 17:01:31', '2025-02-09 17:01:31', NULL, '2025-02-09 16:47:05', NULL, '2025-02-09 17:01:31', b'0', 0), (169, 3, '192.168.1.88@18480@15a5197725664f15ab2523489204b841', '192.168.1.88', 8093, b'1', '2025-02-11 10:37:01', NULL, '2025-02-11 15:46:00', NULL, '2025-02-11 10:37:01', NULL, '2025-02-11 15:46:00', b'0', 0), (170, 3, '192.168.1.88@23968@18c553f6da844704918738165bb9ff7b', '192.168.1.88', 8093, b'0', '2025-02-12 09:23:34', '2025-02-12 11:42:28', '2025-02-12 11:42:28', NULL, '2025-02-12 09:23:34', NULL, '2025-02-12 11:42:28', b'0', 0), (171, 3, '0.0.1.1@89067@37cf10a9841448d1bcb4ed9dc475ab82', '0.0.1.1', 8100, b'0', '2025-02-20 15:13:04', '2025-02-20 15:14:42', '2025-02-20 15:14:42', NULL, '2025-02-20 15:13:04', NULL, '2025-02-20 15:14:42', b'0', 0), (172, 3, '0.0.1.1@90850@e0c1fdc6c62e43df982f1d932deb3da0', '0.0.1.1', 8100, b'0', '2025-02-20 15:14:54', '2025-02-20 15:23:11', '2025-02-20 15:23:11', NULL, '2025-02-20 15:14:54', NULL, '2025-02-20 15:23:11', b'0', 0), (173, 3, '0.0.1.1@20372@e2e5ea654ea045c8bd85597b64945965', '0.0.1.1', 8093, b'0', '2025-03-15 16:06:41', '2025-03-15 17:08:44', '2025-03-15 17:08:44', NULL, '2025-03-15 16:06:41', NULL, '2025-03-15 17:08:44', b'0', 0), (174, 3, '0.0.1.1@44092@a1895a39982b453c8655bdb2e80b86a4', '0.0.1.1', 8093, b'0', '2025-03-15 17:08:58', '2025-03-15 17:34:54', '2025-03-15 17:34:54', NULL, '2025-03-15 17:08:58', NULL, '2025-03-15 17:34:54', b'0', 0), (175, 3, '0.0.1.1@53777@63d6d76e623e4f88895cf5dac499d96d', '0.0.1.1', 8093, b'0', '2025-03-15 17:35:04', '2025-03-15 18:08:31', '2025-03-15 18:08:31', NULL, '2025-03-15 17:35:04', NULL, '2025-03-15 18:08:31', b'0', 0);
COMMIT;

-- ----------------------------
-- Table structure for iot_product
-- ----------------------------
DROP TABLE IF EXISTS `iot_product`;
CREATE TABLE `iot_product`  (
  `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '产品 ID',
  `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '产品名称',
  `product_key` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '产品标识',
  `category_id` bigint NOT NULL COMMENT '产品分类 ID',
  `icon` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '产品图标',
  `pic_url` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '产品图片',
  `description` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '产品描述',
  `status` tinyint NOT NULL DEFAULT 0 COMMENT '产品状态，参见 IotProductStatusEnum 枚举',
  `device_type` tinyint NOT NULL COMMENT '设备类型，参见 IotProductDeviceTypeEnum 枚举',
  `net_type` tinyint NULL DEFAULT NULL COMMENT '联网方式，参见 IotNetTypeEnum 枚举',
  `protocol_type` tinyint NULL DEFAULT NULL COMMENT '接入网关协议，参见 IotProtocolTypeEnum 枚举',
  `protocol_id` bigint NULL DEFAULT NULL COMMENT '协议编号（脚本解析 id）',
  `data_format` tinyint NOT NULL DEFAULT 1 COMMENT '数据格式，参见 IotDataFormatEnum 枚举',
  `validate_type` tinyint NULL DEFAULT NULL COMMENT '数据校验级别，参见 IotValidateTypeEnum 枚举',
  `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 18 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'IoT 产品表';

-- ----------------------------
-- Records of iot_product
-- ----------------------------
BEGIN;
INSERT INTO `iot_product` (`id`, `name`, `product_key`, `category_id`, `icon`, `pic_url`, `description`, `status`, `device_type`, `net_type`, `protocol_type`, `protocol_id`, `data_format`, `validate_type`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (4, '直传电表', '1de24640dfe', 4, NULL, NULL, '3', 0, 0, 0, NULL, NULL, 0, 0, '1', '2024-09-07 19:22:53', '1', '2025-03-05 17:14:21', b'0', 1), (5, '智能电表', 'f13f57c63e9', 3, NULL, NULL, NULL, 1, 0, 0, NULL, NULL, 0, 0, '1', '2024-09-21 08:59:19', '1', '2025-03-08 21:18:33', b'0', 1), (6, '电表 2', 'f0851ee0ebb', 3, NULL, NULL, NULL, 0, 0, 0, NULL, NULL, 1, 0, '1', '2024-10-10 20:35:06', '1', '2024-12-07 17:03:43', b'1', 1), (7, '温湿度V1', 'dcba9928e37', 3, NULL, NULL, '温湿度产品', 0, 0, 0, NULL, NULL, 0, 1, '1', '2024-11-24 17:20:47', '1', '2024-12-07 17:03:44', b'0', 1), (8, '插座', 'zXXHolcC2Hfxd7I1', 13, 'http://test.yudao.iocoder.cn/e71669a0c827bbb96b3e320b6ed19a9fd3d53027833f880fc38a010cac2a2eff.png', 'http://test.yudao.iocoder.cn/3f55f6955a5d453688eef75c66641fdf66e163de250d93124a2746385f1504a6.jpeg', '我是描述！', 0, 2, 0, NULL, NULL, 0, 0, '1', '2024-12-07 19:41:23', '1', '2024-12-14 08:40:46', b'0', 1), (9, 'ZGW01', 'PHg5XcqNfDt4tk3p', 10, NULL, 'http://test.yudao.iocoder.cn/3f2a1f61740b56b3e532412b52890a2d4cf29742cfd4ec64969e29844472103c.jpg', NULL, 0, 2, 0, NULL, NULL, 0, 0, '1', '2024-12-14 12:04:03', '1', '2024-12-14 12:04:23', b'0', 1), (10, '小爱同学', 'YzvHxd4r67sT4s2B', 10, NULL, NULL, NULL, 0, 0, 0, NULL, NULL, 0, 0, '1', '2024-12-14 13:33:53', '1', '2024-12-14 13:33:53', b'0', 1), (11, '插座', 'jAufEMTF1W6wnPhn', 13, NULL, NULL, NULL, 0, 1, NULL, 1, NULL, 0, 0, '1', '2024-12-14 15:59:14', '1', '2024-12-14 15:59:14', b'0', 1), (12, '超长的ProductKey', 'CJVS54fObwZJ9Qe5CJVS54fObwZJ9Qe5', 4, NULL, NULL, NULL, 0, 0, 0, NULL, NULL, 0, 0, '1', '2024-12-16 13:38:44', '1', '2024-12-16 13:38:44', b'0', 1), (13, '好好长的productkey', 'wSmfNFlmUBfBPOgFwSmfNFlmUBfBPOgFwSmfNFlmUBfBPOgFwSmfNFlmUBfBPOgF', 4, NULL, NULL, NULL, 0, 0, 0, NULL, NULL, 0, 0, '1', '2024-12-16 14:06:38', '1', '2024-12-16 14:06:38', b'0', 1), (14, '测试产品', 'hBtBtQC6ULI4ewBZ', 5, NULL, NULL, NULL, 0, 0, 0, NULL, NULL, 0, 0, '1', '2024-12-26 12:57:21', '1', '2024-12-26 12:57:21', b'0', 1), (15, '2222', 'efCs2ruTcmchWF61', 4, NULL, NULL, NULL, 0, 0, 0, NULL, NULL, 0, 0, '1', '2024-12-30 21:12:10', '1', '2025-01-05 22:33:35', b'0', 1), (16, '智能马桶', '4aymZgOTOOCrDKRT', 14, NULL, NULL, NULL, 0, 0, 0, NULL, NULL, 0, 0, '1', '2025-01-24 14:10:56', '1', '2025-02-18 12:23:39', b'0', 1), (17, '温度感应器', 'fqTn4Afs982Nak4N', 4, NULL, NULL, NULL, 1, 0, 1, NULL, NULL, 0, 0, '1', '2025-02-26 10:58:41', '1', '2025-03-17 12:46:27', b'0', 1);
COMMIT;

-- ----------------------------
-- Table structure for iot_product_category
-- ----------------------------
DROP TABLE IF EXISTS `iot_product_category`;
CREATE TABLE `iot_product_category`  (
  `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '分类 ID',
  `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '分类名字',
  `sort` int NOT NULL COMMENT '分类排序',
  `status` tinyint NOT NULL DEFAULT 0 COMMENT '分类状态',
  `description` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '分类描述',
  `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 16 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'IoT 产品分类表';

-- ----------------------------
-- Records of iot_product_category
-- ----------------------------
BEGIN;
INSERT INTO `iot_product_category` (`id`, `name`, `sort`, `status`, `description`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (4, '传感器', 2, 0, '', '1', '2024-09-07 19:22:53', '1', '2024-12-14 08:37:35', b'0', 1), (5, '开关', 1, 0, '', '1', '2024-09-21 08:59:19', '1', '2024-12-14 08:31:56', b'0', 1), (8, '表计', 3, 0, NULL, '1', '2024-12-14 08:37:29', '1', '2024-12-14 08:37:29', b'0', 1), (9, '灯', 4, 0, NULL, '1', '2024-12-14 08:37:43', '1', '2024-12-14 08:37:43', b'0', 1), (10, '网关', 5, 0, NULL, '1', '2024-12-14 08:37:51', '1', '2024-12-14 08:37:51', b'0', 1), (11, '风扇', 6, 0, NULL, '1', '2024-12-14 08:38:00', '1', '2024-12-14 08:38:00', b'0', 1), (12, '门磁', 7, 0, NULL, '1', '2024-12-14 08:38:09', '1', '2024-12-14 08:38:09', b'0', 1), (13, '智能插座', 8, 0, NULL, '1', '2024-12-14 08:38:17', '1', '2024-12-14 08:38:17', b'0', 1), (14, '新风', 9, 0, NULL, '1', '2024-12-14 08:38:27', '1', '2024-12-14 08:38:27', b'0', 1), (15, '智能手表', 10, 0, NULL, '1', '2024-12-14 08:38:34', '1', '2024-12-14 08:38:34', b'0', 1);
COMMIT;

-- ----------------------------
-- Table structure for iot_thing_model
-- ----------------------------
DROP TABLE IF EXISTS `iot_thing_model`;
CREATE TABLE `iot_thing_model`  (
  `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '物模型功能编号',
  `identifier` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '功能标识',
  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '功能名称',
  `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '功能描述',
  `product_id` bigint UNSIGNED NOT NULL COMMENT '产品ID（关联 IotProductDO 的 id）',
  `product_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '产品Key（关联 IotProductDO 的 productKey）',
  `type` tinyint UNSIGNED NOT NULL COMMENT '功能类型（1 - 属性，2 - 服务，3 - 事件）',
  `reqProperty` json NULL COMMENT '属性（存储 ThingModelProperty 的 JSON 数据）',
  `event` json NULL COMMENT '事件（存储 ThingModelEvent 的 JSON 数据）',
  `service` json NULL COMMENT '服务（存储服务的 JSON 数据）',
  `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `idx_product_id`(`product_id` ASC) USING BTREE,
  INDEX `idx_product_key`(`product_key` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 109 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = 'IoT 产品物模型功能表';

-- ----------------------------
-- Records of iot_thing_model
-- ----------------------------
BEGIN;
INSERT INTO `iot_thing_model` (`id`, `identifier`, `name`, `description`, `product_id`, `product_key`, `type`, `reqProperty`, `event`, `service`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (80, 'close', '关闭插座', NULL, 11, 'jAufEMTF1W6wnPhn', 2, NULL, NULL, '{\"name\": \"关闭插座\", \"method\": null, \"callType\": \"sync\", \"required\": null, \"identifier\": \"close\", \"inputParams\": [{\"name\": \"开关状态\", \"dataType\": \"bool\", \"dataSpecs\": null, \"direction\": \"input\", \"paraOrder\": 0, \"identifier\": \"status\", \"dataSpecsList\": [{\"name\": \"关\", \"value\": 0, \"dataType\": \"bool\"}, {\"name\": \"开\", \"value\": 1, \"dataType\": \"bool\"}]}], \"outputParams\": [{\"name\": \"开关状态\", \"dataType\": \"bool\", \"dataSpecs\": null, \"direction\": \"output\", \"paraOrder\": 0, \"identifier\": \"status\", \"dataSpecsList\": [{\"name\": \"关\", \"value\": 0, \"dataType\": \"bool\"}, {\"name\": \"开\", \"value\": 1, \"dataType\": \"bool\"}]}]}', '1', '2024-12-26 14:45:17', '1', '2024-12-27 11:35:32', b'0', 1), (81, 'power', '电流功率', NULL, 11, 'jAufEMTF1W6wnPhn', 1, '{\"name\": \"电流功率\", \"dataType\": \"int\", \"required\": null, \"dataSpecs\": {\"max\": \"1200\", \"min\": \"0\", \"step\": \"1\", \"unit\": \"kW·h\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"千瓦时\", \"defaultValue\": null}, \"accessMode\": \"r\", \"identifier\": \"power\", \"dataSpecsList\": null}', NULL, NULL, '1', '2024-12-26 14:49:12', '1', '2024-12-26 14:49:12', b'0', 1), (82, 'post', '属性上报', '属性上报事件', 11, 'jAufEMTF1W6wnPhn', 3, NULL, '{\"name\": \"属性上报\", \"type\": \"info\", \"method\": \"thing.event.reqProperty.post\", \"required\": null, \"identifier\": \"post\", \"outputParams\": [{\"name\": \"电流功率\", \"dataType\": \"int\", \"dataSpecs\": {\"max\": \"1200\", \"min\": \"0\", \"step\": \"1\", \"unit\": \"kW·h\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"千瓦时\", \"defaultValue\": null}, \"direction\": \"output\", \"paraOrder\": 0, \"identifier\": \"power\", \"dataSpecsList\": null}]}', NULL, '1', '2024-12-26 14:49:13', '1', '2024-12-26 14:49:13', b'0', 1), (83, 'get', '属性获取', '属性获取服务', 11, 'jAufEMTF1W6wnPhn', 2, NULL, NULL, '{\"name\": \"属性获取\", \"method\": \"thing.service.reqProperty.get\", \"callType\": \"async\", \"required\": null, \"identifier\": \"get\", \"inputParams\": [{\"name\": \"电流功率\", \"dataType\": \"int\", \"dataSpecs\": {\"max\": \"1200\", \"min\": \"0\", \"step\": \"1\", \"unit\": \"kW·h\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"千瓦时\", \"defaultValue\": null}, \"direction\": \"input\", \"paraOrder\": 0, \"identifier\": \"power\", \"dataSpecsList\": null}], \"outputParams\": [{\"name\": \"电流功率\", \"dataType\": \"int\", \"dataSpecs\": {\"max\": \"1200\", \"min\": \"0\", \"step\": \"1\", \"unit\": \"kW·h\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"千瓦时\", \"defaultValue\": null}, \"direction\": \"output\", \"paraOrder\": 0, \"identifier\": \"power\", \"dataSpecsList\": null}]}', '1', '2024-12-26 14:49:13', '1', '2024-12-26 14:49:13', b'0', 1), (84, 'soul', '加热', NULL, 15, 'efCs2ruTcmchWF610000000000000000000000000000000000000', 1, '{\"name\": \"加热\", \"dataType\": \"int\", \"required\": null, \"dataSpecs\": {\"max\": \"99\", \"min\": \"0\", \"step\": \"2\", \"unit\": \"W/㎡\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"太阳总辐射\", \"defaultValue\": null}, \"accessMode\": \"rw\", \"identifier\": \"soul\", \"dataSpecsList\": null}', NULL, NULL, '1', '2024-12-31 16:22:15', '1', '2025-01-03 13:38:31', b'0', 1), (85, 'post', '属性上报', '属性上报事件', 15, 'efCs2ruTcmchWF61', 3, NULL, '{\"name\": \"属性上报\", \"type\": \"info\", \"method\": \"thing.event.reqProperty.post\", \"required\": null, \"identifier\": \"post\", \"outputParams\": [{\"name\": \"加热\", \"dataType\": \"int\", \"dataSpecs\": {\"max\": \"99\", \"min\": \"0\", \"step\": \"2\", \"unit\": \"W/㎡\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"太阳总辐射\", \"defaultValue\": null}, \"direction\": \"output\", \"paraOrder\": 0, \"identifier\": \"soul\", \"dataSpecsList\": null}, {\"name\": \"属性test0\", \"dataType\": \"int\", \"dataSpecs\": {\"max\": \"100\", \"min\": \"0\", \"step\": \"1\", \"unit\": \"pH\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"PH值\", \"defaultValue\": null}, \"direction\": \"output\", \"paraOrder\": 0, \"identifier\": \"property_test0\", \"dataSpecsList\": null}, {\"name\": \"时间\", \"dataType\": \"date\", \"dataSpecs\": {\"length\": null, \"dataType\": \"text\", \"defaultValue\": null}, \"direction\": \"output\", \"paraOrder\": 0, \"identifier\": \"times\", \"dataSpecsList\": null}, {\"name\": \"结构体\", \"dataType\": \"struct\", \"dataSpecs\": null, \"direction\": \"output\", \"paraOrder\": 0, \"identifier\": \"struct\", \"dataSpecsList\": [{\"name\": \"2\", \"dataType\": \"struct\", \"required\": null, \"dataSpecs\": {\"max\": \"2222\", \"min\": \"22\", \"step\": \"2\", \"unit\": \"L/min\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"升每分钟\", \"defaultValue\": null}, \"accessMode\": null, \"identifier\": \"2dede\", \"childDataType\": \"float\", \"dataSpecsList\": null}]}, {\"name\": \"队列\", \"dataType\": \"array\", \"dataSpecs\": {\"size\": 5, \"dataType\": \"array\", \"childDataType\": \"int\", \"dataSpecsList\": null}, \"direction\": \"output\", \"paraOrder\": 0, \"identifier\": \"array\", \"dataSpecsList\": null}]}', NULL, '1', '2024-12-31 16:22:15', '1', '2025-02-20 16:58:35', b'0', 1), (86, 'set', '属性设置', '属性设置服务', 15, 'efCs2ruTcmchWF61', 2, NULL, NULL, '{\"name\": \"属性设置\", \"method\": \"thing.service.reqProperty.set\", \"callType\": \"async\", \"required\": null, \"identifier\": \"set\", \"inputParams\": [{\"name\": \"加热\", \"dataType\": \"int\", \"dataSpecs\": {\"max\": \"99\", \"min\": \"0\", \"step\": \"2\", \"unit\": \"W/㎡\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"太阳总辐射\", \"defaultValue\": null}, \"direction\": \"input\", \"paraOrder\": 0, \"identifier\": \"soul\", \"dataSpecsList\": null}, {\"name\": \"属性test0\", \"dataType\": \"int\", \"dataSpecs\": {\"max\": \"100\", \"min\": \"0\", \"step\": \"1\", \"unit\": \"pH\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"PH值\", \"defaultValue\": null}, \"direction\": \"input\", \"paraOrder\": 0, \"identifier\": \"property_test0\", \"dataSpecsList\": null}, {\"name\": \"时间\", \"dataType\": \"date\", \"dataSpecs\": {\"length\": null, \"dataType\": \"text\", \"defaultValue\": null}, \"direction\": \"input\", \"paraOrder\": 0, \"identifier\": \"times\", \"dataSpecsList\": null}, {\"name\": \"结构体\", \"dataType\": \"struct\", \"dataSpecs\": null, \"direction\": \"input\", \"paraOrder\": 0, \"identifier\": \"struct\", \"dataSpecsList\": [{\"name\": \"2\", \"dataType\": \"struct\", \"required\": null, \"dataSpecs\": {\"max\": \"2222\", \"min\": \"22\", \"step\": \"2\", \"unit\": \"L/min\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"升每分钟\", \"defaultValue\": null}, \"accessMode\": null, \"identifier\": \"2dede\", \"childDataType\": \"float\", \"dataSpecsList\": null}]}, {\"name\": \"队列\", \"dataType\": \"array\", \"dataSpecs\": {\"size\": 5, \"dataType\": \"array\", \"childDataType\": \"int\", \"dataSpecsList\": null}, \"direction\": \"input\", \"paraOrder\": 0, \"identifier\": \"array\", \"dataSpecsList\": null}], \"outputParams\": []}', '1', '2024-12-31 16:22:15', '1', '2025-02-20 16:58:35', b'0', 1), (87, 'get', '属性获取', '属性获取服务', 15, 'efCs2ruTcmchWF61', 2, NULL, NULL, '{\"name\": \"属性获取\", \"method\": \"thing.service.reqProperty.get\", \"callType\": \"async\", \"required\": null, \"identifier\": \"get\", \"inputParams\": [{\"name\": \"加热\", \"dataType\": \"int\", \"dataSpecs\": {\"max\": \"99\", \"min\": \"0\", \"step\": \"2\", \"unit\": \"W/㎡\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"太阳总辐射\", \"defaultValue\": null}, \"direction\": \"input\", \"paraOrder\": 0, \"identifier\": \"soul\", \"dataSpecsList\": null}, {\"name\": \"属性test0\", \"dataType\": \"int\", \"dataSpecs\": {\"max\": \"100\", \"min\": \"0\", \"step\": \"1\", \"unit\": \"pH\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"PH值\", \"defaultValue\": null}, \"direction\": \"input\", \"paraOrder\": 0, \"identifier\": \"property_test0\", \"dataSpecsList\": null}, {\"name\": \"时间\", \"dataType\": \"date\", \"dataSpecs\": {\"length\": null, \"dataType\": \"text\", \"defaultValue\": null}, \"direction\": \"input\", \"paraOrder\": 0, \"identifier\": \"times\", \"dataSpecsList\": null}, {\"name\": \"结构体\", \"dataType\": \"struct\", \"dataSpecs\": null, \"direction\": \"input\", \"paraOrder\": 0, \"identifier\": \"struct\", \"dataSpecsList\": [{\"name\": \"2\", \"dataType\": \"struct\", \"required\": null, \"dataSpecs\": {\"max\": \"2222\", \"min\": \"22\", \"step\": \"2\", \"unit\": \"L/min\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"升每分钟\", \"defaultValue\": null}, \"accessMode\": null, \"identifier\": \"2dede\", \"childDataType\": \"float\", \"dataSpecsList\": null}]}, {\"name\": \"队列\", \"dataType\": \"array\", \"dataSpecs\": {\"size\": 5, \"dataType\": \"array\", \"childDataType\": \"int\", \"dataSpecsList\": null}, \"direction\": \"input\", \"paraOrder\": 0, \"identifier\": \"array\", \"dataSpecsList\": null}], \"outputParams\": [{\"name\": \"加热\", \"dataType\": \"int\", \"dataSpecs\": {\"max\": \"99\", \"min\": \"0\", \"step\": \"2\", \"unit\": \"W/㎡\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"太阳总辐射\", \"defaultValue\": null}, \"direction\": \"output\", \"paraOrder\": 0, \"identifier\": \"soul\", \"dataSpecsList\": null}, {\"name\": \"属性test0\", \"dataType\": \"int\", \"dataSpecs\": {\"max\": \"100\", \"min\": \"0\", \"step\": \"1\", \"unit\": \"pH\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"PH值\", \"defaultValue\": null}, \"direction\": \"output\", \"paraOrder\": 0, \"identifier\": \"property_test0\", \"dataSpecsList\": null}, {\"name\": \"时间\", \"dataType\": \"date\", \"dataSpecs\": {\"length\": null, \"dataType\": \"text\", \"defaultValue\": null}, \"direction\": \"output\", \"paraOrder\": 0, \"identifier\": \"times\", \"dataSpecsList\": null}, {\"name\": \"结构体\", \"dataType\": \"struct\", \"dataSpecs\": null, \"direction\": \"output\", \"paraOrder\": 0, \"identifier\": \"struct\", \"dataSpecsList\": [{\"name\": \"2\", \"dataType\": \"struct\", \"required\": null, \"dataSpecs\": {\"max\": \"2222\", \"min\": \"22\", \"step\": \"2\", \"unit\": \"L/min\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"升每分钟\", \"defaultValue\": null}, \"accessMode\": null, \"identifier\": \"2dede\", \"childDataType\": \"float\", \"dataSpecsList\": null}]}, {\"name\": \"队列\", \"dataType\": \"array\", \"dataSpecs\": {\"size\": 5, \"dataType\": \"array\", \"childDataType\": \"int\", \"dataSpecsList\": null}, \"direction\": \"output\", \"paraOrder\": 0, \"identifier\": \"array\", \"dataSpecsList\": null}]}', '1', '2024-12-31 16:22:15', '1', '2025-02-20 16:58:35', b'0', 1), (88, '5A_test', '5a服务', NULL, 15, 'efCs2ruTcmchWF610000000000000000000000000000000000000', 2, NULL, NULL, '{\"name\": \"5a服务\", \"method\": null, \"callType\": \"async\", \"required\": null, \"identifier\": \"5A_test\", \"inputParams\": null, \"outputParams\": null}', '1', '2025-01-01 16:49:22', '1', '2025-01-01 16:49:22', b'0', 1), (89, 'property_test0', '属性test0', NULL, 15, 'efCs2ruTcmchWF610000000000000000000000000000000000000', 1, '{\"name\": \"属性test0\", \"dataType\": \"int\", \"required\": null, \"dataSpecs\": {\"max\": \"100\", \"min\": \"0\", \"step\": \"1\", \"unit\": \"pH\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"PH值\", \"defaultValue\": null}, \"accessMode\": \"rw\", \"identifier\": \"property_test0\", \"dataSpecsList\": null}', NULL, NULL, '1', '2025-01-01 16:58:23', '1', '2025-01-01 16:58:23', b'0', 1), (90, 'event_test0', 'Event_test0', NULL, 15, 'efCs2ruTcmchWF610000000000000000000000000000000000000', 3, NULL, '{\"name\": \"Event_test0\", \"type\": \"info\", \"method\": null, \"required\": null, \"identifier\": \"event_test0\", \"outputParams\": null}', NULL, '1', '2025-01-01 16:59:05', '1', '2025-01-01 16:59:05', b'0', 1), (91, 'times', '时间', NULL, 15, 'efCs2ruTcmchWF610000000000000000000000000000000000000', 1, '{\"name\": \"时间\", \"dataType\": \"date\", \"required\": null, \"dataSpecs\": {\"length\": null, \"dataType\": \"text\", \"defaultValue\": null}, \"accessMode\": \"rw\", \"identifier\": \"times\", \"dataSpecsList\": null}', NULL, NULL, '1', '2025-01-03 20:21:09', '1', '2025-01-03 20:21:09', b'0', 1), (92, 'struct', '结构体', NULL, 15, 'efCs2ruTcmchWF61', 1, '{\"name\": \"结构体\", \"dataType\": \"struct\", \"required\": null, \"dataSpecs\": null, \"accessMode\": \"rw\", \"identifier\": \"struct\", \"dataSpecsList\": [{\"name\": \"2\", \"dataType\": \"struct\", \"required\": null, \"dataSpecs\": {\"max\": \"2222\", \"min\": \"22\", \"step\": \"2\", \"unit\": \"L/min\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"升每分钟\", \"defaultValue\": null}, \"accessMode\": null, \"identifier\": \"2dede\", \"childDataType\": \"float\", \"dataSpecsList\": null}]}', NULL, NULL, '1', '2025-01-03 20:21:30', '1', '2025-02-20 16:58:35', b'0', 1), (93, 'array', '队列', NULL, 15, 'efCs2ruTcmchWF610000000000000000000000000000000000000', 1, '{\"name\": \"队列\", \"dataType\": \"array\", \"required\": null, \"dataSpecs\": {\"size\": 5, \"dataType\": \"array\", \"childDataType\": \"int\", \"dataSpecsList\": null}, \"accessMode\": \"rw\", \"identifier\": \"array\", \"dataSpecsList\": null}', NULL, NULL, '1', '2025-01-03 20:21:58', '1', '2025-01-03 20:21:58', b'0', 1), (94, 'water', '出水量', NULL, 16, '4aymZgOTOOCrDKRT', 1, '{\"name\": \"出水量\", \"dataType\": \"int\", \"required\": null, \"dataSpecs\": {\"max\": \"100\", \"min\": \"0\", \"step\": \"1\", \"unit\": \"var\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"乏\", \"defaultValue\": null}, \"accessMode\": \"rw\", \"identifier\": \"water\", \"dataSpecsList\": null}', NULL, NULL, '1', '2025-01-24 14:11:37', '1', '2025-01-24 14:11:37', b'0', 1), (95, 'post', '属性上报', '属性上报事件', 16, '4aymZgOTOOCrDKRT', 3, NULL, '{\"name\": \"属性上报\", \"type\": \"info\", \"method\": \"thing.event.reqProperty.post\", \"required\": null, \"identifier\": \"post\", \"outputParams\": [{\"name\": \"出水量\", \"dataType\": \"int\", \"dataSpecs\": {\"max\": \"100\", \"min\": \"0\", \"step\": \"1\", \"unit\": \"var\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"乏\", \"defaultValue\": null}, \"direction\": \"output\", \"paraOrder\": 0, \"identifier\": \"water\", \"dataSpecsList\": null}, {\"name\": \"高度\", \"dataType\": \"int\", \"dataSpecs\": {\"max\": \"50\", \"min\": \"10\", \"step\": \"1\", \"unit\": \"cm\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"厘米\", \"defaultValue\": null}, \"direction\": \"output\", \"paraOrder\": 0, \"identifier\": \"height\", \"dataSpecsList\": null}, {\"name\": \"宽度\", \"dataType\": \"int\", \"dataSpecs\": {\"max\": \"50\", \"min\": \"20\", \"step\": \"1\", \"unit\": \"mm\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"毫米\", \"defaultValue\": null}, \"direction\": \"output\", \"paraOrder\": 0, \"identifier\": \"width\", \"dataSpecsList\": null}, {\"name\": \"一二\", \"dataType\": \"int\", \"dataSpecs\": {\"max\": \"1000\", \"min\": \"1\", \"step\": \"5\", \"unit\": \"L/min\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"升每分钟\", \"defaultValue\": null}, \"direction\": \"output\", \"paraOrder\": 0, \"identifier\": \"onetwo\", \"dataSpecsList\": null}, {\"name\": \"一三\", \"dataType\": \"int\", \"dataSpecs\": {\"max\": \"5\", \"min\": \"1\", \"step\": \"2\", \"unit\": \"L/min\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"升每分钟\", \"defaultValue\": null}, \"direction\": \"output\", \"paraOrder\": 0, \"identifier\": \"oneThree\", \"dataSpecsList\": null}]}', NULL, '1', '2025-01-24 14:11:37', '1', '2025-01-28 23:03:17', b'0', 1), (96, 'set', '属性设置', '属性设置服务', 16, '4aymZgOTOOCrDKRT', 2, NULL, NULL, '{\"name\": \"属性设置\", \"method\": \"thing.service.reqProperty.set\", \"callType\": \"async\", \"required\": null, \"identifier\": \"set\", \"inputParams\": [{\"name\": \"出水量\", \"dataType\": \"int\", \"dataSpecs\": {\"max\": \"100\", \"min\": \"0\", \"step\": \"1\", \"unit\": \"var\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"乏\", \"defaultValue\": null}, \"direction\": \"input\", \"paraOrder\": 0, \"identifier\": \"water\", \"dataSpecsList\": null}, {\"name\": \"高度\", \"dataType\": \"int\", \"dataSpecs\": {\"max\": \"50\", \"min\": \"10\", \"step\": \"1\", \"unit\": \"cm\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"厘米\", \"defaultValue\": null}, \"direction\": \"input\", \"paraOrder\": 0, \"identifier\": \"height\", \"dataSpecsList\": null}, {\"name\": \"宽度\", \"dataType\": \"int\", \"dataSpecs\": {\"max\": \"50\", \"min\": \"20\", \"step\": \"1\", \"unit\": \"mm\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"毫米\", \"defaultValue\": null}, \"direction\": \"input\", \"paraOrder\": 0, \"identifier\": \"width\", \"dataSpecsList\": null}, {\"name\": \"一二\", \"dataType\": \"int\", \"dataSpecs\": {\"max\": \"1000\", \"min\": \"1\", \"step\": \"5\", \"unit\": \"L/min\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"升每分钟\", \"defaultValue\": null}, \"direction\": \"input\", \"paraOrder\": 0, \"identifier\": \"onetwo\", \"dataSpecsList\": null}, {\"name\": \"一三\", \"dataType\": \"int\", \"dataSpecs\": {\"max\": \"5\", \"min\": \"1\", \"step\": \"2\", \"unit\": \"L/min\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"升每分钟\", \"defaultValue\": null}, \"direction\": \"input\", \"paraOrder\": 0, \"identifier\": \"oneThree\", \"dataSpecsList\": null}], \"outputParams\": []}', '1', '2025-01-24 14:11:37', '1', '2025-01-28 23:03:17', b'0', 1), (97, 'get', '属性获取', '属性获取服务', 16, '4aymZgOTOOCrDKRT', 2, NULL, NULL, '{\"name\": \"属性获取\", \"method\": \"thing.service.reqProperty.get\", \"callType\": \"async\", \"required\": null, \"identifier\": \"get\", \"inputParams\": [{\"name\": \"出水量\", \"dataType\": \"int\", \"dataSpecs\": {\"max\": \"100\", \"min\": \"0\", \"step\": \"1\", \"unit\": \"var\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"乏\", \"defaultValue\": null}, \"direction\": \"input\", \"paraOrder\": 0, \"identifier\": \"water\", \"dataSpecsList\": null}, {\"name\": \"高度\", \"dataType\": \"int\", \"dataSpecs\": {\"max\": \"50\", \"min\": \"10\", \"step\": \"1\", \"unit\": \"cm\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"厘米\", \"defaultValue\": null}, \"direction\": \"input\", \"paraOrder\": 0, \"identifier\": \"height\", \"dataSpecsList\": null}, {\"name\": \"宽度\", \"dataType\": \"int\", \"dataSpecs\": {\"max\": \"50\", \"min\": \"20\", \"step\": \"1\", \"unit\": \"mm\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"毫米\", \"defaultValue\": null}, \"direction\": \"input\", \"paraOrder\": 0, \"identifier\": \"width\", \"dataSpecsList\": null}, {\"name\": \"一二\", \"dataType\": \"int\", \"dataSpecs\": {\"max\": \"1000\", \"min\": \"1\", \"step\": \"5\", \"unit\": \"L/min\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"升每分钟\", \"defaultValue\": null}, \"direction\": \"input\", \"paraOrder\": 0, \"identifier\": \"onetwo\", \"dataSpecsList\": null}, {\"name\": \"一三\", \"dataType\": \"int\", \"dataSpecs\": {\"max\": \"5\", \"min\": \"1\", \"step\": \"2\", \"unit\": \"L/min\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"升每分钟\", \"defaultValue\": null}, \"direction\": \"input\", \"paraOrder\": 0, \"identifier\": \"oneThree\", \"dataSpecsList\": null}], \"outputParams\": [{\"name\": \"出水量\", \"dataType\": \"int\", \"dataSpecs\": {\"max\": \"100\", \"min\": \"0\", \"step\": \"1\", \"unit\": \"var\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"乏\", \"defaultValue\": null}, \"direction\": \"output\", \"paraOrder\": 0, \"identifier\": \"water\", \"dataSpecsList\": null}, {\"name\": \"高度\", \"dataType\": \"int\", \"dataSpecs\": {\"max\": \"50\", \"min\": \"10\", \"step\": \"1\", \"unit\": \"cm\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"厘米\", \"defaultValue\": null}, \"direction\": \"output\", \"paraOrder\": 0, \"identifier\": \"height\", \"dataSpecsList\": null}, {\"name\": \"宽度\", \"dataType\": \"int\", \"dataSpecs\": {\"max\": \"50\", \"min\": \"20\", \"step\": \"1\", \"unit\": \"mm\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"毫米\", \"defaultValue\": null}, \"direction\": \"output\", \"paraOrder\": 0, \"identifier\": \"width\", \"dataSpecsList\": null}, {\"name\": \"一二\", \"dataType\": \"int\", \"dataSpecs\": {\"max\": \"1000\", \"min\": \"1\", \"step\": \"5\", \"unit\": \"L/min\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"升每分钟\", \"defaultValue\": null}, \"direction\": \"output\", \"paraOrder\": 0, \"identifier\": \"onetwo\", \"dataSpecsList\": null}, {\"name\": \"一三\", \"dataType\": \"int\", \"dataSpecs\": {\"max\": \"5\", \"min\": \"1\", \"step\": \"2\", \"unit\": \"L/min\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"升每分钟\", \"defaultValue\": null}, \"direction\": \"output\", \"paraOrder\": 0, \"identifier\": \"oneThree\", \"dataSpecsList\": null}]}', '1', '2025-01-24 14:11:37', '1', '2025-01-28 23:03:17', b'0', 1), (98, 'height', '高度', NULL, 16, '4aymZgOTOOCrDKRT', 1, '{\"name\": \"高度\", \"dataType\": \"int\", \"required\": null, \"dataSpecs\": {\"max\": \"50\", \"min\": \"10\", \"step\": \"1\", \"unit\": \"cm\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"厘米\", \"defaultValue\": null}, \"accessMode\": \"rw\", \"identifier\": \"height\", \"dataSpecsList\": null}', NULL, NULL, '1', '2025-01-27 16:36:04', '1', '2025-01-27 16:36:04', b'0', 1), (99, 'width', '宽度', '132', 16, '4aymZgOTOOCrDKRT', 1, '{\"name\": \"宽度\", \"dataType\": \"int\", \"required\": null, \"dataSpecs\": {\"max\": \"50\", \"min\": \"20\", \"step\": \"1\", \"unit\": \"mm\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"毫米\", \"defaultValue\": null}, \"accessMode\": \"rw\", \"identifier\": \"width\", \"dataSpecsList\": null}', NULL, NULL, '1', '2025-01-27 16:36:32', '1', '2025-01-27 22:22:40', b'0', 1), (100, 'onetwo', '一二', NULL, 16, '4aymZgOTOOCrDKRT', 1, '{\"name\": \"一二\", \"dataType\": \"int\", \"required\": null, \"dataSpecs\": {\"max\": \"1000\", \"min\": \"1\", \"step\": \"5\", \"unit\": \"L/min\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"升每分钟\", \"defaultValue\": null}, \"accessMode\": \"rw\", \"identifier\": \"onetwo\", \"dataSpecsList\": null}', NULL, NULL, '1', '2025-01-28 22:57:42', '1', '2025-01-28 22:57:42', b'0', 1), (101, 'oneThree', '一三', NULL, 16, '4aymZgOTOOCrDKRT', 1, '{\"name\": \"一三\", \"dataType\": \"int\", \"required\": null, \"dataSpecs\": {\"max\": \"5\", \"min\": \"1\", \"step\": \"2\", \"unit\": \"L/min\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"升每分钟\", \"defaultValue\": null}, \"accessMode\": \"rw\", \"identifier\": \"oneThree\", \"dataSpecsList\": null}', NULL, NULL, '1', '2025-01-28 23:03:17', '1', '2025-01-28 23:03:17', b'0', 1), (102, 'kwhp', '正向有功电能', NULL, 5, 'f13f57c63e9', 1, '{\"name\": \"正向有功电能\", \"dataType\": \"double\", \"required\": null, \"dataSpecs\": {\"max\": \"1000000000\", \"min\": \"-1000000000\", \"step\": \"1\", \"unit\": \"kW·h\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"千瓦时\", \"defaultValue\": null}, \"accessMode\": \"r\", \"identifier\": \"kwhp\", \"dataSpecsList\": null}', NULL, NULL, '1', '2025-03-03 21:44:12', '1', '2025-03-03 21:44:12', b'0', 1), (103, 'post', '属性上报', '属性上报事件', 5, 'f13f57c63e9', 3, NULL, '{\"name\": \"属性上报\", \"type\": \"info\", \"method\": \"thing.event.reqProperty.post\", \"required\": null, \"identifier\": \"post\", \"outputParams\": [{\"name\": \"正向有功电能\", \"dataType\": \"double\", \"dataSpecs\": {\"max\": \"1000000000\", \"min\": \"-1000000000\", \"step\": \"1\", \"unit\": \"kW·h\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"千瓦时\", \"defaultValue\": null}, \"direction\": \"output\", \"paraOrder\": 0, \"identifier\": \"kwhp\", \"dataSpecsList\": null}]}', NULL, '1', '2025-03-03 21:44:12', '1', '2025-03-03 21:44:12', b'0', 1), (104, 'get', '属性获取', '属性获取服务', 5, 'f13f57c63e9', 2, NULL, NULL, '{\"name\": \"属性获取\", \"method\": \"thing.service.reqProperty.get\", \"callType\": \"async\", \"required\": null, \"identifier\": \"get\", \"inputParams\": [{\"name\": \"正向有功电能\", \"dataType\": \"double\", \"dataSpecs\": {\"max\": \"1000000000\", \"min\": \"-1000000000\", \"step\": \"1\", \"unit\": \"kW·h\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"千瓦时\", \"defaultValue\": null}, \"direction\": \"input\", \"paraOrder\": 0, \"identifier\": \"kwhp\", \"dataSpecsList\": null}], \"outputParams\": [{\"name\": \"正向有功电能\", \"dataType\": \"double\", \"dataSpecs\": {\"max\": \"1000000000\", \"min\": \"-1000000000\", \"step\": \"1\", \"unit\": \"kW·h\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"千瓦时\", \"defaultValue\": null}, \"direction\": \"output\", \"paraOrder\": 0, \"identifier\": \"kwhp\", \"dataSpecsList\": null}]}', '1', '2025-03-03 21:44:12', '1', '2025-03-03 21:44:12', b'0', 1), (105, 'temperature', '温度', NULL, 17, 'fqTn4Afs982Nak4N', 1, '{\"name\": \"温度\", \"dataType\": \"double\", \"required\": null, \"dataSpecs\": {\"max\": \"85\", \"min\": \"-40\", \"step\": \"0.1\", \"unit\": \"°C\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"摄氏度\", \"defaultValue\": null}, \"accessMode\": \"r\", \"identifier\": \"temperature\", \"dataSpecsList\": null}', NULL, NULL, '1', '2025-03-15 16:32:09', '1', '2025-03-15 16:32:09', b'0', 1), (106, 'post', '属性上报', '属性上报事件', 17, 'fqTn4Afs982Nak4N', 3, NULL, '{\"name\": \"属性上报\", \"type\": \"info\", \"method\": \"thing.event.reqProperty.post\", \"required\": null, \"identifier\": \"post\", \"outputParams\": [{\"name\": \"温度\", \"dataType\": \"double\", \"dataSpecs\": {\"max\": \"85\", \"min\": \"-40\", \"step\": \"0.1\", \"unit\": \"°C\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"摄氏度\", \"defaultValue\": null}, \"direction\": \"output\", \"paraOrder\": 0, \"identifier\": \"temperature\", \"dataSpecsList\": null}, {\"name\": \"湿度\", \"dataType\": \"double\", \"dataSpecs\": {\"max\": \"100\", \"min\": \"0\", \"step\": \"0.1\", \"unit\": \"%\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"百分比\", \"defaultValue\": null}, \"direction\": \"output\", \"paraOrder\": 0, \"identifier\": \"humidity\", \"dataSpecsList\": null}]}', NULL, '1', '2025-03-15 16:32:09', '1', '2025-03-15 16:33:53', b'0', 1), (107, 'get', '属性获取', '属性获取服务', 17, 'fqTn4Afs982Nak4N', 2, NULL, NULL, '{\"name\": \"属性获取\", \"method\": \"thing.service.reqProperty.get\", \"callType\": \"async\", \"required\": null, \"identifier\": \"get\", \"inputParams\": [{\"name\": \"温度\", \"dataType\": \"double\", \"dataSpecs\": {\"max\": \"85\", \"min\": \"-40\", \"step\": \"0.1\", \"unit\": \"°C\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"摄氏度\", \"defaultValue\": null}, \"direction\": \"input\", \"paraOrder\": 0, \"identifier\": \"temperature\", \"dataSpecsList\": null}, {\"name\": \"湿度\", \"dataType\": \"double\", \"dataSpecs\": {\"max\": \"100\", \"min\": \"0\", \"step\": \"0.1\", \"unit\": \"%\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"百分比\", \"defaultValue\": null}, \"direction\": \"input\", \"paraOrder\": 0, \"identifier\": \"humidity\", \"dataSpecsList\": null}], \"outputParams\": [{\"name\": \"温度\", \"dataType\": \"double\", \"dataSpecs\": {\"max\": \"85\", \"min\": \"-40\", \"step\": \"0.1\", \"unit\": \"°C\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"摄氏度\", \"defaultValue\": null}, \"direction\": \"output\", \"paraOrder\": 0, \"identifier\": \"temperature\", \"dataSpecsList\": null}, {\"name\": \"湿度\", \"dataType\": \"double\", \"dataSpecs\": {\"max\": \"100\", \"min\": \"0\", \"step\": \"0.1\", \"unit\": \"%\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"百分比\", \"defaultValue\": null}, \"direction\": \"output\", \"paraOrder\": 0, \"identifier\": \"humidity\", \"dataSpecsList\": null}]}', '1', '2025-03-15 16:32:09', '1', '2025-03-15 16:33:53', b'0', 1), (108, 'humidity', '湿度', NULL, 17, 'fqTn4Afs982Nak4N', 1, '{\"name\": \"湿度\", \"dataType\": \"double\", \"required\": null, \"dataSpecs\": {\"max\": \"100\", \"min\": \"0\", \"step\": \"0.1\", \"unit\": \"%\", \"precise\": null, \"dataType\": \"int\", \"unitName\": \"百分比\", \"defaultValue\": null}, \"accessMode\": \"r\", \"identifier\": \"humidity\", \"dataSpecsList\": null}', NULL, NULL, '1', '2025-03-15 16:33:53', '1', '2025-03-15 16:33:53', b'0', 1);
COMMIT;

-- ----------------------------
-- Table structure for iot_think_model_function
-- ----------------------------
DROP TABLE IF EXISTS `iot_think_model_function`;
CREATE TABLE `iot_think_model_function`  (
  `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '物模型功能编号',
  `identifier` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '功能标识',
  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '功能名称',
  `description` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '功能描述',
  `product_id` bigint UNSIGNED NOT NULL COMMENT '产品ID（关联 IotProductDO 的 id）',
  `product_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '产品Key（关联 IotProductDO 的 productKey）',
  `type` tinyint UNSIGNED NOT NULL COMMENT '功能类型（1 - 属性，2 - 服务，3 - 事件）',
  `reqProperty` json NULL COMMENT '属性（存储 ThingModelProperty 的 JSON 数据）',
  `event` json NULL COMMENT '事件（存储 ThingModelEvent 的 JSON 数据）',
  `service` json NULL COMMENT '服务（存储服务的 JSON 数据）',
  `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `idx_product_id`(`product_id` ASC) USING BTREE,
  INDEX `idx_product_key`(`product_key` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 22 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = 'IoT 产品物模型功能表';

-- ----------------------------
-- Records of iot_think_model_function
-- ----------------------------
BEGIN;
INSERT INTO `iot_think_model_function` (`id`, `identifier`, `name`, `description`, `product_id`, `product_key`, `type`, `reqProperty`, `event`, `service`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (7, 'Temperature', '温度', '当前温度值', 1001, 'smart-sensor-001', 1, '{\"name\": \"温度\", \"dataType\": {\"type\": \"float\", \"specs\": {\"max\": 100.0, \"min\": -10.0, \"step\": 0.1, \"unit\": \"℃\"}}, \"required\": true, \"accessMode\": \"r\", \"identifier\": \"Temperature\", \"description\": \"当前温度值\"}', NULL, NULL, '1', '2024-09-17 19:44:17', '1', '2024-09-17 19:45:19', b'1', 1), (8, 'post', '属性上报', '属性上报事件', 1001, 'smart-sensor-001', 3, NULL, '{\"name\": \"属性上报\", \"type\": \"info\", \"method\": \"thing.event.reqProperty.post\", \"identifier\": \"post\", \"outputData\": [{\"name\": \"湿度\", \"dataType\": {\"type\": \"float\", \"specs\": {\"max\": 100.0, \"min\": 0.0, \"step\": 0.1, \"unit\": \"%\"}}, \"direction\": \"output\", \"identifier\": \"Humidity\", \"description\": \"当前湿度值\"}, {\"name\": \"温度\", \"dataType\": {\"type\": \"float\", \"specs\": {\"max\": 222.0, \"min\": -111.0, \"step\": 0.1, \"unit\": \"℃\"}}, \"direction\": \"output\", \"identifier\": \"Temperature\", \"description\": \"当前温度值\"}], \"description\": \"属性上报事件\"}', NULL, '1', '2024-09-17 19:44:17', '1', '2024-09-17 19:57:19', b'0', 1), (9, 'get', '属性获取', '属性获取服务', 1001, 'smart-sensor-001', 2, NULL, NULL, '{\"name\": \"属性获取\", \"method\": \"thing.service.reqProperty.get\", \"callType\": \"async\", \"inputData\": [{\"name\": \"属性标识符列表\", \"dataType\": {\"type\": \"array\", \"specs\": {\"item\": {\"type\": \"text\", \"specs\": null}, \"size\": 0}}, \"direction\": \"input\", \"identifier\": \"properties\", \"description\": \"需要获取的属性标识符列表\"}], \"identifier\": \"get\", \"outputData\": [{\"name\": \"湿度\", \"dataType\": {\"type\": \"float\", \"specs\": {\"max\": 100.0, \"min\": 0.0, \"step\": 0.1, \"unit\": \"%\"}}, \"direction\": \"output\", \"identifier\": \"Humidity\", \"description\": \"当前湿度值\"}, {\"name\": \"温度\", \"dataType\": {\"type\": \"float\", \"specs\": {\"max\": 222.0, \"min\": -111.0, \"step\": 0.1, \"unit\": \"℃\"}}, \"direction\": \"output\", \"identifier\": \"Temperature\", \"description\": \"当前温度值\"}], \"description\": \"属性获取服务\"}', '1', '2024-09-17 19:44:17', '1', '2024-09-17 19:57:19', b'0', 1), (10, 'Humidity', '湿度', '当前湿度值', 1001, 'smart-sensor-001', 1, '{\"name\": \"湿度\", \"dataType\": {\"type\": \"float\", \"specs\": {\"max\": 100.0, \"min\": 0.0, \"step\": 0.1, \"unit\": \"%\"}}, \"required\": true, \"accessMode\": \"r\", \"identifier\": \"Humidity\", \"description\": \"当前湿度值\"}', NULL, NULL, '1', '2024-09-17 19:44:23', '1', '2024-09-17 19:44:23', b'0', 1), (11, 'Temperature', '温度', '当前温度值', 1001, 'smart-sensor-001', 1, '{\"name\": \"温度\", \"dataType\": {\"type\": \"float\", \"specs\": {\"max\": 222.0, \"min\": -111.0, \"step\": 0.1, \"unit\": \"℃\"}}, \"required\": true, \"accessMode\": \"r\", \"identifier\": \"Temperature\", \"description\": \"当前温度值\"}', NULL, NULL, '1', '2024-09-17 19:46:00', '1', '2024-09-17 19:55:36', b'0', 1), (13, '1', '1', NULL, 5, 'f13f57c63e9', 1, '{\"name\": null, \"dataType\": {\"type\": \"int\", \"specs\": {\"max\": 1, \"min\": 1, \"step\": 1, \"unit\": \"1\"}}, \"required\": true, \"accessMode\": \"rw\", \"identifier\": null, \"description\": \"1\"}', NULL, NULL, '1', '2024-09-30 11:09:51', '1', '2024-09-30 11:31:25', b'1', 1), (14, 'post', '属性上报', '属性上报事件', 5, 'f13f57c63e9', 3, NULL, '{\"name\": \"属性上报\", \"type\": \"info\", \"method\": \"thing.event.reqProperty.post\", \"identifier\": \"post\", \"outputData\": [{\"name\": null, \"dataType\": {\"type\": \"int\", \"specs\": {\"max\": 1, \"min\": 1, \"step\": 1, \"unit\": \"1\"}}, \"direction\": \"output\", \"identifier\": null, \"description\": \"1\"}, {\"name\": null, \"dataType\": {\"type\": \"int\", \"specs\": {\"max\": 1, \"min\": 1, \"step\": 1, \"unit\": \"1\"}}, \"direction\": \"output\", \"identifier\": null, \"description\": \"1\"}, {\"name\": null, \"dataType\": {\"type\": \"int\", \"specs\": {\"max\": 2, \"min\": 1, \"step\": 1, \"unit\": \"1\"}}, \"direction\": \"output\", \"identifier\": null, \"description\": null}, {\"name\": null, \"dataType\": {\"type\": \"double\", \"specs\": {\"max\": 999999.0, \"min\": 0.0, \"step\": 0.01, \"unit\": \"千瓦时/kW·h\"}}, \"direction\": \"output\", \"identifier\": null, \"description\": null}, {\"name\": null, \"dataType\": {\"type\": \"int\", \"specs\": {\"max\": 999999999, \"min\": 0, \"step\": 1, \"unit\": \"伏\"}}, \"direction\": \"output\", \"identifier\": null, \"description\": null}], \"description\": \"属性上报事件\"}', NULL, '1', '2024-09-30 11:09:52', '1', '2024-10-10 20:54:32', b'0', 1), (15, 'set', '属性设置', '属性设置服务', 5, 'f13f57c63e9', 2, NULL, NULL, '{\"name\": \"属性设置\", \"method\": \"thing.service.reqProperty.set\", \"callType\": \"async\", \"inputData\": [{\"name\": null, \"dataType\": {\"type\": \"int\", \"specs\": {\"max\": 1, \"min\": 1, \"step\": 1, \"unit\": \"1\"}}, \"direction\": \"input\", \"identifier\": null, \"description\": \"1\"}, {\"name\": null, \"dataType\": {\"type\": \"int\", \"specs\": {\"max\": 1, \"min\": 1, \"step\": 1, \"unit\": \"1\"}}, \"direction\": \"input\", \"identifier\": null, \"description\": \"1\"}, {\"name\": null, \"dataType\": {\"type\": \"int\", \"specs\": {\"max\": 2, \"min\": 1, \"step\": 1, \"unit\": \"1\"}}, \"direction\": \"input\", \"identifier\": null, \"description\": null}], \"identifier\": \"set\", \"outputData\": [], \"description\": \"属性设置服务\"}', '1', '2024-09-30 11:09:52', '1', '2024-10-10 20:54:32', b'0', 1), (16, 'get', '属性获取', '属性获取服务', 5, 'f13f57c63e9', 2, NULL, NULL, '{\"name\": \"属性获取\", \"method\": \"thing.service.reqProperty.get\", \"callType\": \"async\", \"inputData\": [{\"name\": \"属性标识符列表\", \"dataType\": {\"type\": \"array\", \"specs\": {\"item\": {\"type\": \"text\", \"specs\": null}, \"size\": 0}}, \"direction\": \"input\", \"identifier\": \"properties\", \"description\": \"需要获取的属性标识符列表\"}], \"identifier\": \"get\", \"outputData\": [{\"name\": null, \"dataType\": {\"type\": \"int\", \"specs\": {\"max\": 1, \"min\": 1, \"step\": 1, \"unit\": \"1\"}}, \"direction\": \"output\", \"identifier\": null, \"description\": \"1\"}, {\"name\": null, \"dataType\": {\"type\": \"int\", \"specs\": {\"max\": 1, \"min\": 1, \"step\": 1, \"unit\": \"1\"}}, \"direction\": \"output\", \"identifier\": null, \"description\": \"1\"}, {\"name\": null, \"dataType\": {\"type\": \"int\", \"specs\": {\"max\": 2, \"min\": 1, \"step\": 1, \"unit\": \"1\"}}, \"direction\": \"output\", \"identifier\": null, \"description\": null}, {\"name\": null, \"dataType\": {\"type\": \"double\", \"specs\": {\"max\": 999999.0, \"min\": 0.0, \"step\": 0.01, \"unit\": \"千瓦时/kW·h\"}}, \"direction\": \"output\", \"identifier\": null, \"description\": null}, {\"name\": null, \"dataType\": {\"type\": \"int\", \"specs\": {\"max\": 999999999, \"min\": 0, \"step\": 1, \"unit\": \"伏\"}}, \"direction\": \"output\", \"identifier\": null, \"description\": null}], \"description\": \"属性获取服务\"}', '1', '2024-09-30 11:09:52', '1', '2024-10-10 20:54:32', b'0', 1), (17, '2', '1', NULL, 5, 'f13f57c63e9', 1, '{\"name\": null, \"dataType\": {\"type\": \"int\", \"specs\": {\"max\": 1, \"min\": 1, \"step\": 1, \"unit\": \"1\"}}, \"required\": true, \"accessMode\": \"rw\", \"identifier\": null, \"description\": \"1\"}', NULL, NULL, '1', '2024-09-30 11:21:26', '1', '2024-09-30 11:21:26', b'0', 1), (18, '1', '2', NULL, 5, 'f13f57c63e9', 1, '{\"name\": null, \"dataType\": {\"type\": \"int\", \"specs\": {\"max\": 1, \"min\": 1, \"step\": 1, \"unit\": \"1\"}}, \"required\": true, \"accessMode\": \"rw\", \"identifier\": null, \"description\": \"1\"}', NULL, NULL, '1', '2024-09-30 11:39:58', '1', '2024-09-30 11:39:58', b'0', 1), (19, '3', '3', NULL, 5, 'f13f57c63e9', 1, '{\"name\": null, \"dataType\": {\"type\": \"int\", \"specs\": {\"max\": 2, \"min\": 1, \"step\": 1, \"unit\": \"1\"}}, \"required\": true, \"accessMode\": \"rw\", \"identifier\": null, \"description\": null}', NULL, NULL, '1', '2024-09-30 12:15:15', '1', '2024-09-30 12:15:15', b'0', 1), (20, 'ActiveEnergyImport', '正向有功总电能', NULL, 5, 'f13f57c63e9', 1, '{\"name\": null, \"dataType\": {\"type\": \"double\", \"specs\": {\"max\": 999999.0, \"min\": 0.0, \"step\": 0.01, \"unit\": \"千瓦时/kW·h\"}}, \"required\": true, \"accessMode\": \"r\", \"identifier\": null, \"description\": null}', NULL, NULL, '1', '2024-09-30 12:17:33', '1', '2024-09-30 12:17:33', b'0', 1), (21, 'ua', 'A相电压', NULL, 5, 'f13f57c63e9', 1, '{\"name\": null, \"dataType\": {\"type\": \"int\", \"specs\": {\"max\": 999999999, \"min\": 0, \"step\": 1, \"unit\": \"伏\"}}, \"required\": true, \"accessMode\": \"r\", \"identifier\": null, \"description\": null}', NULL, NULL, '1', '2024-10-10 20:54:32', '1', '2024-10-10 20:54:32', b'0', 1);
COMMIT;

SET FOREIGN_KEY_CHECKS = 1;
